// The inputs to the transform
uniform sampler2D inputs;
// Indicates whether the inputs should be
// traversed in row major or column major
// order
uniform bool rows;
// The current iteration number
uniform unsigned int t;
// twiddle factor
uniform float alphat;
// (j,k) indices defining the computation to run
// for this vertex shader
in unsigned int j;
in unsigned int k;
// twiddle factor to the power k, computed outside
// the shader to avoid branching
in float alphatk;

// The real part of the output
out float realPart;
// The imaginary part of the output
out float imaginaryPart;

void main(void) {
  unsigned int twoPowTm1 = (unsigned int)pow(2, t-1);
  unsigned int twoPowT = twoPowTm1 * 2;

  gl_Position = 
}
